package com.mdd.admin.service;

import com.mdd.admin.validate.RegionCreateValidate;
import com.mdd.admin.validate.RegionUpdateValidate;
import com.mdd.admin.validate.RegionSearchValidate;
import com.mdd.common.base.page.PageValidate;
import com.mdd.common.core.PageResult;
import com.mdd.system.vo.RegionDetailVo;
import com.mdd.system.vo.RegionListedVo;

import java.util.List;

/**
 * 地区服务接口类
 * @author LikeAdmin
 */
public interface IRegionService {

    /**
     * 地区列表
     *
     * @author LikeAdmin
     * @param pageValidate 分页参数
     * @param searchValidate 搜索参数
     * @return PageResult<RegionListedVo>
     */
    PageResult<RegionListedVo> list(PageValidate pageValidate, RegionSearchValidate searchValidate);

    /**
     * 地区详情
     *
     * @author LikeAdmin
     * @param id 主键ID
     * @return RegionDetailVo
     */
    RegionDetailVo detail(Long id);

    /**
     * 地区新增
     *
     * @author LikeAdmin
     * @param createValidate 参数
     */
    void add(RegionCreateValidate createValidate);

    /**
     * 地区编辑
     *
     * @author LikeAdmin
     * @param updateValidate 参数
     */
    void edit(RegionUpdateValidate updateValidate);

    /**
     * 地区删除
     *
     * @author LikeAdmin
     * @param id 主键ID
     */
    void del(Long id);


    List<RegionListedVo> listFirst();
    List<RegionListedVo> listByParentId(Long parentId);
}
